home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / etc / bash_completion.d / povray < prev    next >
Text File  |  2009-04-02  |  2KB  |  60 lines

  1. # -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*-
  2. # ex: ts=8 sw=8 noet filetype=sh
  3. #
  4. # povray completion by "David Necas (Yeti)" <yeti@physics.muni.cz>
  5.  
  6. _povray()
  7. {
  8.   local cur prev povcur pfx oext defoext
  9.   defoext=png # default output extension, if cannot be determined FIXME
  10.  
  11.   COMPREPLY=()
  12.   povcur=`_get_cword`
  13.   prev=${COMP_WORDS[COMP_CWORD-1]}
  14.  
  15.   _expand || return 0
  16.  
  17.   case $povcur in
  18.     [-+]I*)
  19.     cur="${povcur#[-+]I}" # to confuse _filedir
  20.     pfx="${povcur%"$cur"}"
  21.     _filedir pov
  22.     COMPREPLY=( ${COMPREPLY[@]/#/$pfx} )
  23.     return 0
  24.     ;;
  25.     [-+]O*)
  26.     # guess what output file type user may want
  27.     case $( ( IFS=$'\n'; echo "${COMP_WORDS[*]}" | grep '^[-+]F' ) ) in
  28.       [-+]FN) oext=png ;;
  29.       [-+]FP) oext=ppm ;;
  30.       [-+]F[CT]) oext=tga ;;
  31.       *) oext=$defoext ;;
  32.     esac
  33.     # complete filename corresponding to previously specified +I
  34.     COMPREPLY=( $( ( IFS=$'\n'; echo "${COMP_WORDS[*]}" | grep '^[-+]I' ) ) )
  35.     COMPREPLY=( ${COMPREPLY[@]#[-+]I} )
  36.     COMPREPLY=( ${COMPREPLY[@]/%.pov/.$oext} )
  37.     cur="${povcur#[-+]O}" # to confuse _filedir
  38.     pfx="${povcur%"$cur"}"
  39.     _filedir $oext
  40.     COMPREPLY=( ${COMPREPLY[@]/#/$pfx} )
  41.     return 0
  42.     ;;
  43.     *.ini\[|*.ini\[*[^]]) # sections in .ini files
  44.     cur="${povcur#*\[}"
  45.     pfx="${povcur%\["$cur"}" # prefix == filename
  46.     [ -r "$pfx" ] || return 0
  47.     COMPREPLY=( $(sed -e 's/^[[:space:]]*\[\('"$cur"'[^]]*\]\).*$/\1/' -e 't' -e 'd' -- "$pfx") )
  48.     # to prevent [bar] expand to nothing.  can be done more easily?
  49.     COMPREPLY=( "${COMPREPLY[@]/#/$pfx[}" )
  50.     return 0
  51.     ;;
  52.     *)
  53.     cur="$povcur"
  54.     _filedir '?(ini|pov)'
  55.     return 0
  56.     ;;
  57.   esac
  58. }
  59. complete -F _povray $filenames povray xpovray spovray
  60.